xen/arm: Allow virq != irq
authorJulien Grall <julien.grall@linaro.org>
Wed, 1 Apr 2015 16:21:42 +0000 (17:21 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Thu, 2 Apr 2015 09:42:35 +0000 (10:42 +0100)
commit95140d5a1126137e3c41318d0eb0a81e77780e4f
treea358f5f41afbcd5983b0f4db4db8bcb3226476b3
parenta7511905fae7ba592c5bf63cd77d8ff78087d689
xen/arm: Allow virq != irq

Currently, Xen is assuming that the virtual IRQ will always be the same
as IRQ.

Modify route_guest_irq to take the virtual IRQ in parameter which allow
Xen to assign a different IRQ number. Also store the vIRQ in the desc
action to easily retrieve the IRQ target when we need to inject the
interrupt.

As DOM0 will get most the devices, the vIRQ is equal to the IRQ in that case.

At the same time modify the behavior of irq_get_domain. The function now
requires that the irq_desc belongs to an IRQ assigned to a guest.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
xen/arch/arm/domain_build.c
xen/arch/arm/gic.c
xen/arch/arm/irq.c
xen/arch/arm/platforms/xgene-storm.c
xen/arch/arm/vgic.c
xen/include/asm-arm/gic.h
xen/include/asm-arm/irq.h
xen/include/asm-arm/vgic.h